package cn.mjnxin.iot.connector;

import cn.mjnxin.iot.connector.base.IChannelDataSender;
import cn.mjnxin.iot.connector.context.IPeerContext;
import cn.mjnxin.iot.connector.message.IMessageHandle;

/**
 * 主连接器接口
 * @author CLG 2023年10月10日
 * @version V1.0.0
 */
public interface IConnector {
	IPeerContext getContext();
	
	IChannelDataSender getChannelDataSender();

	void launch() throws InterruptedException;

	Integer getPid();

	Integer getLogLevel();

	String getGateAddress();

	boolean isDevMode();
	
	IMessageHandle<?> getMessageHandle(int pid);

	/**
	 * 是否支持所有报文协议
	 * @return
	 */
	boolean isAllMatch();

	/**
	 * API接口的IP:Port
	 * @return the 连接端API的IP地址
	 */
	String getConnectorApiAddress();

	void shutdown();
}